package com.hk.juc.memorymodel;

/**
 * volatile定义的变量不用担心线程安全问题：
 *  1、锁的happens-before可以保证释放锁和获取锁对于多个线程都是可见的
 *  2、特性
 *      ①可见性
 *      ②原子性
 */
public class VolatileFeaturesExample {
    //定义volatile变量
    volatile long v1 = 0L;

    //设置值
    public  void set(long l) {
        v1 = l;
    }

    //获取并且自增
    public void getAndIncrement() {
        v1++;
    }

    //获取值
    public long get() {
        return v1;
    }


}
